package t5.extrairsql;

/**
 *
 * @author Gabriel Lunardi
 */
import java.io.*;

public class ExtraiAlunosfromCSV {

    //executar soh qdo for preciso, ou seja, serve soh para gerar o script sql com os inserts
    public static void main(String[] args) {
       
        //tentei sem usar o tratamento de excessões e não funcionou .. Com ele funciona, pq?
        //No javadoc do BufferedReader diz que o metodo readLine obriga a tratar excessao
        // http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html#readLine()
        //referencia que achei pra pegar o caminho relativo: http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
        // javadoc da classe String (metodo split): http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
        try {
            String pathProjeto = System.getProperty("user.dir");
            String separador = System.getProperty("file.separator"); //varia de SO para SO Win: \ Linux /
            String pathCSV = pathProjeto.concat(separador + "documentos" + separador + "planilhaCC.csv");
            String pathSQL = pathProjeto.concat(separador + "documentos" + separador + "insertAlunos.sql");
            System.out.println(pathCSV);
            
            BufferedReader in = new BufferedReader(new FileReader(pathCSV));
            BufferedWriter out = new BufferedWriter(new FileWriter(pathSQL));
            String linha;
            String resultAlunoSQL = "INSERT INTO Aluno VALUES (";
            linha = in.readLine(); //tira o ponteiro da primeira linha (cabecalho do CSV)
            String matAnterior = "";
            while ((linha = in.readLine()) != null) {
      
                String[] conteudo = linha.split(",",-1); //-1 nao omite nenhum campo
                if (matAnterior.equals(conteudo[12])){
                    continue;
                }
                else {
                    out.write(resultAlunoSQL + conteudo[12] + ",'" + conteudo[13] + "'," + conteudo [21] + ");");
                    out.write(System.getProperty("line.separator")); //tbm varia de SO para SO
                    matAnterior = conteudo[12];
                }
                
            }
            in.close();
            out.close();
        } catch (Exception ioe) {
            ioe.printStackTrace();
        }

    }

}
